package com.sojson.util.socket;

import java.io.Serializable;

import javax.websocket.Session;

/**
 * WebSocket控制器接口
 * 
 * @author liu
 * @date 2021-04-04
 */
public interface WebSocketInterface extends Serializable {

    /**
     * 建立连接的注解,前端触发上面URI时会进入此注解标注的方法,和之前关于DWR文章中的onpage方法类似
     * 
     * @param sess  Session
     * @throws Exception 
     */
    void onOpen(Session sess) throws Exception;

    /**
     * 收到前端传来的消息后执行的方法
     * 
     * @param sess  Session
     * @param msg   前端传过来的消息
     * @throws Exception 
     */
    void onMsg(Session sess, String msg) throws Exception;

    /**
     * 关闭连接,销毁Session的时候触发的方法
     * 
     * @param token 路径参数
     */
    void onClose();

    /**
     * 发生错误时触发的方法
     * 
     * @param sess  Session
     * @param err   异常
     */
    void onError(Session sess, Throwable err);

    /**
     * 发送消息
     * 
     * @param status
     * @param message
     * @param datas
     * @param types
     */
    void sendMsg(int status, String message, Object datas, String types);

}